package message

import (
	"encoding/json"
)

type Message struct {
	Type string `json:"type"`
	Data string `json:"data"`
}

func (msg *Message) ToJsonBytes() ([]byte, error) {
	return json.Marshal(msg)
}

func (msg *Message) SetData(data interface{}) error {
	var str string
	switch data.(type) {
	case string:
		str = data.(string)
	default:
		bytes, err := json.Marshal(data)
		if err != nil {
			return err
		}
		str = string(bytes)
	}
	msg.Data = str
	return nil
}

func (msg *Message) SetType(msgType string) {
	msg.Type = msgType
}
